package com.example.pungolo.journal.model;

import java.util.Calendar;
import java.util.Date;

public class DateUtils {
  private DateUtils() { }

  public static final long ZONE_OFFSET = Calendar.getInstance().get(Calendar.ZONE_OFFSET);
  public static final long MS_IN_A_DAY = 86400000;

  public static int dayFromDate(Date date) {
    // ad esempio, io sono gmt+1 (italia), quindi offset sar� 3600000 (un'ora)
    // se da me sono le 18, a gmt sono le 17
    // devo incrementare timestamp di offset per ottenere l'inizio della giornata alla mia timezone
    long timestamp = date.getTime();
    long day = (timestamp + ZONE_OFFSET) / MS_IN_A_DAY; // ms in un giorno
    return (int)day;
  }
  
  public static Date dateFromDay(int day) {
    return new Date(tsOfDayStart(day));
  }
  
  public static long tsOfDayStart(int day) {
    return day * MS_IN_A_DAY - ZONE_OFFSET;
  }

  public static int today() {
    return dayFromDate(new Date());
  }
}
